package com.dxf.chepter04

import com.dxf.chepter04.T48_01.xh.Tiger

/**
 * scala 包对java的包进行了扩展
 *
 * java中包的作用
 * 1 区分相同名字的类
 * 2 类很多时,很好管理类'
 * 3 控制访问范围]
 *
 * 包的本质:
 * 创建不同的文件夹来保存类
 *
 *
 *
 * =================================
 *
 * java对包的要求
 * 1 类的源文件需要和包的对应文件路径匹配
 * 2 编译类后的字节码文件也是在对应的路径下
 * 3 java 包名,源码的文件目录结构要一致,如果不一致报错
 *
 *
 *
 * Scala包的基本介绍
 * 和java一样,并且包的功能更加强大,使用也相对复杂
 *
 *
 *  1 java的功能
 *  2 文件路径和包路径在源码阶段不用一致,编译后,编译器会自动改成一致
 *  3
 *
 *
 *
 *   包名命名规范 com.公司名.项目名.业务模块名
 *
 *
 *
 *   Scala会自动引入的包
 *   1 java.lang.包
 *   2 scala包
 *   3 Predef包
 *
 *  import java.lang
 *  import scala
 *  import Predef
 *
 *  =================================================
 *
 *
 *  scala包的注意事项和使用细节
 *
 *  1 scala打包方式,1.1和1.2完全等价
 *     1.1传统: package com.dxf.xxx
 *     1.2多行: package com.dxf
 *           package xxx
 *     1.3类似c#的:
 *      package com.dxf{
 *        package xxx{
 *          class Person{
 *           ....
 *          }
 *
 *        }
 *
 *      }
 *
 *  2 scala支持在一个文件中,可以同时创建多个包,及给各个包创建类,trait和 object
 *
 *  4 父类要用子类时必须要 import
 *  5 可以在一个xx.scala文件中引入多个package,建议不要嵌套3层以上
 *  6 包名可以相对路径也可以绝对路径引入,包名冲突可以用绝对路径
 *
 *
 *
 *
 */
object T48_包介绍 {
  def main(args: Array[String]): Unit = {

    //1 使用xh的tiger
    var tigerxh = new com.dxf.chepter04.T48_01.xh.Tiger

    //2 使用xm的tiger
    var tigerxm = new com.dxf.chepter04.T48_02.xm.Tiger
    println(tigerxh, tigerxm)



  }


}

class Empoly {

}


